negotiator.boaframework.opponentmodel
Class NashFrequencyModel

java.lang.Object
  extended by negotiator.boaframework.OpponentModel
      extended by negotiator.boaframework.opponentmodel.NashFrequencyModel

public class NashFrequencyModel
extends OpponentModel

This class holds the model of a negotiator, which will be constructed by it's bids. The opponentmodel will be based on frequency/distribution analysis. - The importance of a discrete issue and it's values will be calculated by the difference in the number of times a certain value is chosen. - The importance of a numerical issue will be calculated by the first offered values and the range in which our own issue has a utility > 0. We will then interpolate between the max utility value and the min utility value. Adapted by Mark Hendrikx to be compatible with the BOA framework. Tim Baarslag, Koen Hindriks, Mark Hendrikx, Alex Dirkzwager and Catholijn M. Jonker. Decoupling Negotiating Agents to Explore the Space of Negotiation Strategies

Author:
Roland van der Linden, Mark Hendrikx

Field Summary
 
Fields inherited from class negotiator.boaframework.OpponentModel
negotiationSession, opponentUtilitySpace
 
Constructor Summary
NashFrequencyModel()
           
 
Method Summary
 double getBidEvaluation(Bid bid)
          This method estimates the utility of the negotiator given that it has just offered the given bid.
 java.lang.String getName()
           
 UtilitySpace getOpponentUtilitySpace()
           
 double getWeight(Issue issue)
          Returns the weight of a particular issue in the domain.
 void init(NegotiationSession domainKnow, java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          Initializes the model.
 java.lang.String toString()
          This returns a string representation of the negotiatormodel.
 void updateModel(Bid bid, double time)
          This will update the negotiatormodel based on a new bid that has just been offered by the negotiator.
 
Methods inherited from class negotiator.boaframework.OpponentModel
cleanUp, endSession, getIssueWeights, init, isCleared, loadData, setOpponentUtilitySpace, setOpponentUtilitySpace, storeData, updateModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NashFrequencyModel

public NashFrequencyModel()
Method Detail

init

public void init(NegotiationSession domainKnow,
                 java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          throws java.lang.Exception
Description copied from class: OpponentModel
Initializes the model. The init method should always be called after creating an opponent model.

Overrides:
init in class OpponentModel
Parameters:
domainKnow - reference to the state of the negotiation
Throws:
java.lang.Exception

updateModel

public void updateModel(Bid bid,
                        double time)
This will update the negotiatormodel based on a new bid that has just been offered by the negotiator.

Specified by:
updateModel in class OpponentModel
Parameters:
bid - The bid that has just been offered.
time - at which the bid was offered.

getBidEvaluation

public double getBidEvaluation(Bid bid)
This method estimates the utility of the negotiator given that it has just offered the given bid. The utility estimation is done by multiplying the normalized issue weights with the normalized offered-value weight of that issue. Note that the utility of a bid will always be in between 0 - 1. Note that this method does not take discount into account.

Overrides:
getBidEvaluation in class OpponentModel
Parameters:
bid - The bid that has just been offered by the negotiator that we are evaluating.
Returns:
The estimated utility of the bid that has been offered by the negotiator we are evaluating.

toString

public java.lang.String toString()
This returns a string representation of the negotiatormodel.

Overrides:
toString in class java.lang.Object

getWeight

public double getWeight(Issue issue)
Description copied from class: OpponentModel
Returns the weight of a particular issue in the domain.

Overrides:
getWeight in class OpponentModel
Parameters:
issue - from which the weight should be returned
Returns:
weight of the given issue

getName

public java.lang.String getName()
Overrides:
getName in class OpponentModel
Returns:
name of the opponent model.

getOpponentUtilitySpace

public UtilitySpace getOpponentUtilitySpace()
Overrides:
getOpponentUtilitySpace in class OpponentModel
Returns:
the estimated utility space of the opponent